/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Entidades;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author ivana
 */
@Entity
@Table(name = "cargaempaque")
@NamedQueries({
    @NamedQuery(name = "Cargaempaque.findAll", query = "SELECT c FROM Cargaempaque c"),
    @NamedQuery(name = "Cargaempaque.findByIdCargaEmpaque", query = "SELECT c FROM Cargaempaque c WHERE c.idCargaEmpaque = :idCargaEmpaque"),
    @NamedQuery(name = "Cargaempaque.findByFechaHoraCargaEmpaque", query = "SELECT c FROM Cargaempaque c WHERE c.fechaHoraCargaEmpaque = :fechaHoraCargaEmpaque"),
    @NamedQuery(name = "Cargaempaque.findByCantEmpaquesCargados", query = "SELECT c FROM Cargaempaque c WHERE c.cantEmpaquesCargados = :cantEmpaquesCargados")})
public class Cargaempaque implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idCargaEmpaque")
    private Integer idCargaEmpaque;
    @Basic(optional = false)
    @Column(name = "fechaHoraCargaEmpaque")
    private String fechaHoraCargaEmpaque;
    @Basic(optional = false)
    @Column(name = "cantEmpaquesCargados")
    private int cantEmpaquesCargados;
    @JoinColumn(name = "idEmpaque", referencedColumnName = "idEmpaque")
    @ManyToOne(optional = false)
    private Empaque empaque;
    @JoinColumn(name = "idOperario", referencedColumnName = "idoperario")
    @ManyToOne
    private Operario operario;
    @JoinColumn(name = "idTransporte", referencedColumnName = "idTransporte")
    @ManyToOne(optional = false)
    private Transporte transporte;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "cargaempaque")
    private Collection<Recepcion> recepcionCollection;

    public Cargaempaque() {
    }

    public Cargaempaque(Integer idCargaEmpaque) {
        this.idCargaEmpaque = idCargaEmpaque;
    }

    public Cargaempaque(Integer idCargaEmpaque, String fechaHoraCargaEmpaque, int cantEmpaquesCargados) {
        this.idCargaEmpaque = idCargaEmpaque;
        this.fechaHoraCargaEmpaque = fechaHoraCargaEmpaque;
        this.cantEmpaquesCargados = cantEmpaquesCargados;
    }

    public Integer getIdCargaEmpaque() {
        return idCargaEmpaque;
    }

    public void setIdCargaEmpaque(Integer idCargaEmpaque) {
        this.idCargaEmpaque = idCargaEmpaque;
    }

    public String getFechaHoraCargaEmpaque() {
        return fechaHoraCargaEmpaque;
    }

    public void setFechaHoraCargaEmpaque(String fechaHoraCargaEmpaque) {
        this.fechaHoraCargaEmpaque = fechaHoraCargaEmpaque;
    }

    public int getCantEmpaquesCargados() {
        return cantEmpaquesCargados;
    }

    public void setCantEmpaquesCargados(int cantEmpaquesCargados) {
        this.cantEmpaquesCargados = cantEmpaquesCargados;
    }

    public Empaque getEmpaque() {
        return empaque;
    }

    public void setEmpaque(Empaque empaque) {
        this.empaque = empaque;
    }

    public Operario getOperario() {
        return operario;
    }

    public void setOperario(Operario operario) {
        this.operario = operario;
    }

    public Transporte getTransporte() {
        return transporte;
    }

    public void setTransporte(Transporte transporte) {
        this.transporte = transporte;
    }

    public Collection<Recepcion> getRecepcionCollection() {
        return recepcionCollection;
    }

    public void setRecepcionCollection(Collection<Recepcion> recepcionCollection) {
        this.recepcionCollection = recepcionCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idCargaEmpaque != null ? idCargaEmpaque.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Cargaempaque)) {
            return false;
        }
        Cargaempaque other = (Cargaempaque) object;
        if ((this.idCargaEmpaque == null && other.idCargaEmpaque != null) || (this.idCargaEmpaque != null && !this.idCargaEmpaque.equals(other.idCargaEmpaque))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Entidades.Cargaempaque[idCargaEmpaque=" + idCargaEmpaque + "]";
    }

}
